Skip to content

Conversation

@brianignacio5
Copy link
Collaborator

@brianignacio5 brianignacio5 commented Nov 3, 2025

Description

EIM Integration Release

This pull request significantly refactors the CI workflow and documentation to modernize ESP-IDF installation, simplify test execution, and update configuration guidance for additional frameworks. The most impactful changes are the removal of the custom Docker-based GitHub Action in favor of using Espressif’s official setup action, improvements to test reporting, and updates to documentation for clarity and current best practices.

CI/CD Pipeline Modernization:

  • Removed the custom .github/actions/idf Docker-based GitHub Action, including its Dockerfile, action.yml, and shell scripts, in favor of using the official espressif/install-esp-idf-action for setting up ESP-IDF in CI workflows. This simplifies maintenance and aligns with upstream best practices. [1] [2] [3] [4]
  • Updated .github/workflows/ci.yml and .github/workflows/ui-test.yml to use the official ESP-IDF setup action, improved Node.js and Yarn setup, and replaced custom test output handling with standardized test reporting using dorny/test-reporter. Also added robust JSON extraction and artifact upload for UI test results. [1] [2] [3]

Documentation Updates:

  • Revised the setup instructions in README.md to recommend using the ESP-IDF Install Manager and updated the workflow for selecting and configuring ESP-IDF versions in VS Code. This reflects the latest recommended installation and configuration processes. [1] [2]
  • Updated the documentation for integrating additional frameworks (ADF, MDF, Matter, Rainmaker, HomeKit) to use environment variables set via idf.customExtraVars instead of deprecated configuration keys, both in English and Chinese documentation. [1] [2] [3] [4] [5] [6]
  • Removed obsolete or redundant documentation, such as the "Clear Saved ESP-IDF Setups" table entry.

These changes collectively improve maintainability, reduce custom code, and ensure that both CI and user documentation are up-to-date with current Espressif tooling and extension capabilities.

Fix #1696

Type of change

  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Steps to test this pull request

This PR requires an overall test of the extension to make sure all features work. This PR include breaking changes in the way the ESP-IDF is installed now using the ESP-IDF Installation Manager (EIM)

  • Expected behaviour:

Install using the EIM.

  • Expected output:

How has this been tested?

Manual testing of overall extension features.

Test Configuration:

  • ESP-IDF Version: 5.5.1
  • OS (Windows,Linux and macOS): All

Checklist

  • PR Self Reviewed
  • Applied Code formatting
  • Added Documentation
  • Added Unit Test
  • Verified on all platforms - Windows,Linux and macOS

* draft eim integration

* update init extension auto config

* rm global state idf setups

* do not show invalid extension when showOnboardingOnInit is false

* rm duplicate code

* update welcome show

* fix new projext examples esp idf loading

* update default esp_ide json file

* add eim verify idf setup functions

* update to eim_idf json file name

* save settings as env variables

* rm settings use customExtraVars instead

* fix save docker settings

* check empty customExtraVars PATH

* fix getConfigurationSettings

* rm old setup

* fix lint

* rm setup webpack update python in project test

* use customextravars first

* add selected workspace global config

* use process env if customextra vars not available

* default tools path

* test doctor command

* write customExtraVars from process env if available

* fix workspace arg

* update menuconfig test rm doc cmd

* add PYTHON env var

* log doctor command output clean project first

* add missing timeout

* test debug vscode

* add PYTHON env var

* add env PYTHON save settings

* fallback on global state setups

* escape activation script path if spaces

* move IDF_PATH to workspace state, move frameworks settings to customExtraVars

* update rm global setups

* use env vars if idfSetups not defined, rm redudant code downloadManager and tests

* read esp idf setups from esp_idf.json

* await getConfigurationAccess

* add logger init

* fix IDF_TOOLS_PATH not defined if default

* add PYTHON to env variables

* change checkIdfSetup to isIdfSetupValid rm IEspIdfTool fields

* remove env systemDriver use C in Windows default eim_idf json path

* log activation script output

* change to error logs

* update activationScript split regex

* fix IDF_PYTHON_ENV_PATH to envDict

* loadIdfSetup save idf.gitPath

* add path to prepareEnv

* fix idf size ui

* add idf setups in doctor command

* add validation for eim load env setup

* idfSetupToUse add validation

* fix load idf.currentSetup

* rm idf.espIdfPath from docs rm duplicate idfSetups use old idf.espIdfPath if no idf.currentSetup

* add download extract install run eim from extension

* fx linux exe call

* use env shell for activation script

* allow pick mirror eim download, add l10n for msg

* fix errors

* fix env vars in clang validate

* use latest vscode-extension-tester

* use eimPath field in eim_idf json to open existing executable if exists

* rm idf setup validation, only in doctor cmd

* fix checkPyVenv object

* rm idf.toolsPath reference

* use idf toolsPath old setting to find esp_idf json file

* rm use of ESP_IDF_VERSION in status bar

* add missing v for idf version

* update walkthrough install step

* add idf.eimExecutableArgs for eim gui or cli

* use & intead of launch process

* make sure that eim_unified_release is not cached, rm quote

* close notifications befor doctor cmd

* mv dismiss to before

* fix lint

* fix ts issues

* use default tools path instead of temp for eim download

* add default EIM locations to match Espressif IDE and use EIM_PATH

* test json reporter no use of docker

* add expected test env vars

* add results in console too, rm actions idf fix doctor test

* replace user path in doctor test

* test using e2e ui reports

* test extester mocha options

* update options as object

* update reporter option

* try to parse json from console

* fix console output parsing

* update console output parse error handle

* clean json step

* update test log to test locally

* rm text after closing json

* update end regex

* update parsing with test data

* fail on test error

* update bulma packages and use new syntax
@brianignacio5 brianignacio5 added this to the v2.0.0 milestone Nov 3, 2025
@brianignacio5 brianignacio5 self-assigned this Nov 3, 2025
@github-actions
Copy link

github-actions bot commented Nov 3, 2025

Download the artifacts for this pull request:
You can test these changes by installing this VSIX by click menu View -> Command Palette..., type Install from VSIX and then select downloaded esp-idf-extension.vsix file to install the extension.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Clicking Open ESP-IDF Installation Manager in the Pre-Release version has no response (VSC-1783)

2 participants